import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:ideology/features/models/editor_status.dart';
import 'package:ideology/features/screens/widgets/status_bar/status_bar.dart';

/// 编辑器底部状态栏的外层容器。
///
/// 作用：
/// - 提供固定高度与背景样式；
/// - 添加顶部边框作为分隔线；
/// - 监听 [EditorStatus] 的变化，并将数据传递给内部的 [StatusBar]；
/// - 将样式与监听逻辑从上层 Screen 中抽离，便于复用与维护。
class EditorStatusBar extends StatelessWidget {
  const EditorStatusBar({
    super.key,
    required this.listenable,
  });

  /// 外部传入的 [EditorStatus] 状态监听器。
  final ValueListenable<EditorStatus> listenable;

  @override
  Widget build(BuildContext context) {
    final cs = Theme.of(context).colorScheme;

    return Container(
      height: 28,
      decoration: BoxDecoration(
        color: cs.surfaceContainerHighest,
        border: Border(
          top: BorderSide(
            // 顶部分隔线（弱化）
            color: Theme.of(context).dividerColor.withOpacity(0.35),
            width: 0.8,
          ),
        ),
      ),

      // 监听状态并刷新子内容
      child: ValueListenableBuilder<EditorStatus>(
        valueListenable: listenable,
        builder: (context, stat, _) {
          return StatusBar(
            line: stat.line,
            column: stat.column,
            charCount: stat.charCount,
            encoding: 'UTF-8', // 固定值：编码
            lineEnding: 'LF',  // 固定值：换行符
            tabSize: 2,        // 固定值：Tab 宽度
          );
        },
      ),
    );
  }
}
